package ar.com.aterrizar.operaciones;

import java.util.ArrayList;
import org.uqbar.commons.model.UserException;
import ar.com.aterrizar.aerolineas.Aerolinea;
import ar.com.aterrizar.asientos.Asiento;
import ar.com.aterrizar.entidades.Cliente;

public class SobreReserva {
	ArrayList<Asiento> asientos = new ArrayList<Asiento>();
	Aerolinea aerolinea;
	public ArrayList<Asiento> getAsiento(){
		return asientos;
	}
	
	public void transferirReserva(Asiento asiento){
		//Si expiro una reserva
		for (Asiento unAsiento : asientos) {
			if(asiento.getCodigoDeAsiento()==unAsiento.getCodigoDeAsiento()){
				asiento.getReserva().getClientes().remove(0);
				asiento.getReserva().getClientes().get(0).reservar(unAsiento);
			}
		}		
	}
	public void eliminarSobreReserva(Asiento asiento){
		asiento.getReserva().eliminarReservas();
	}
	public void addAsiento(Asiento asiento){
		for(Asiento asientoTmp :this.asientos){
			if(asiento.getCodigoDeAsiento().equals(asientoTmp.getCodigoDeAsiento())){
				return;
			}
		}
		this.asientos.add(asiento);
	}
	public void addReserva(Cliente cliente, Asiento asiento){
		for(Asiento asientoTmp:this.getAsiento()){
			if(asientoTmp.getCodigoDeAsiento().equals(asiento.getCodigoDeAsiento())){
				for(Cliente clienteTmp :asientoTmp.getReserva().getClientes()){
					if(clienteTmp.getDni().equals(cliente.getDni())){
						throw new UserException("El asiento ya se encuentra sobreReservado");
					}
				}
				asientoTmp.getReserva().agregarClienteAReservas(cliente);
				return;					
			}
		}
	}
}

